package Options::Attributes::API::InterfaceCustomerUpdate;

use Options::Attributes::API::WebServiceLink;
use DE_EPAGES::Core::API::Log qw (LogDebug GetLog);
our @ISA = qw(Options::Attributes::API::WebServiceLink)
    ;    # inherits from WebServiceLink

sub new {
    my ($class) = @_;

    # Call the constructor of the parent class.
    my $self = $class->SUPER::new( $_[1], $_[2], $_[3], $_[4] );
    bless $self, $class;
    return $self;
}

sub _setupParams {
    my $self = shift;
    if (  !$self->{_WSRequest}->{ModifiedOn}
        || $self->{_WSRequest}->{ModifiedOn} eq ""
        || !defined( $self->{_WSRequest}->{ModifiedOn} ) )
    {
        $self->{_WSRequest}->{ModifiedOn} = '2011-01-14T00:00:00';
    }
    if (!$self->{_WSRequest}->{AdditionalAddresses}
        ->{CustomerAdditionalAddress}->{ModifiedOn}
        || $self->{_WSRequest}->{AdditionalAddresses}
        ->{CustomerAdditionalAddress}->{ModifiedOn} eq ""
        || !defined(
            $self->{_WSRequest}->{AdditionalAddresses}
                ->{CustomerAdditionalAddress}->{ModifiedOn}
        )
        )
    {
        $self->{_WSRequest}->{AdditionalAddresses}
            ->{CustomerAdditionalAddress}->{ModifiedOn}
            = '2011-01-14T00:00:00';
    }
    if (  !$self->{_WSRequest}->{CreditAmount}
        || $self->{_WSRequest}->{CreditAmount} eq ""
        || !defined( $self->{_WSRequest}->{CreditAmount} ) )
    {
        $self->{_WSRequest}->{CreditAmount} = 0;
    }
    if (  !$self->{_WSRequest}->{AccountBalance}
        || $self->{_WSRequest}->{AccountBalance} eq ""
        || !defined( $self->{_WSRequest}->{AccountBalance} ) )
    {
        $self->{_WSRequest}->{AccountBalance} = 0;
    }
    if (  !$self->{_WSRequest}->{AccountBalanceCurr}
        || $self->{_WSRequest}->{AccountBalanceCurr} eq ""
        || !defined( $self->{_WSRequest}->{AccountBalanceCurr} ) )
    {
        $self->{_WSRequest}->{AccountBalanceCurr} = 0;
    }
    if (  !$self->{_WSRequest}->{CustomerNumber}
        || $self->{_WSRequest}->{CustomerNumber} eq ""
        || !defined( $self->{_WSRequest}->{CustomerNumber} ) )
    {
        $self->{_WSRequest}->{CustomerNumber} = 0;
    }
    if (!$self->{_WSRequest}->{AdditionalAddresses}
        ->{CustomerAdditionalAddress}->{AddressNumber}
        || $self->{_WSRequest}->{AdditionalAddresses}
        ->{CustomerAdditionalAddress}->{AddressNumber} eq ""
        || !defined(
            $self->{_WSRequest}->{AdditionalAddresses}
                ->{CustomerAdditionalAddress}->{AddressNumber}
        )
        )
    {
        $self->{_WSRequest}->{AdditionalAddresses}
            ->{CustomerAdditionalAddress}->{AddressNumber} = 0;
    }

    my $dataTypes = {
        'AddressNumber'          => 'int',
        'StatusCode'             => 'string',
        'TitleCode'              => 'string',
        'FirstName'              => 'string',
        'Surname'                => 'string',
        'Address1'               => 'string',
        'Address2'               => 'string',
        'Address3'               => 'string',
        'Town'                   => 'string',
        'County'                 => 'string',
        'Country'                => 'string',
        'Postcode'               => 'string',
        'PostcodeStrip'          => 'string',
        'DayPhone'               => 'string',
        'Fax'                    => 'string',
        'Type'                   => 'string',
        'AddressRef1'            => 'string',
        'AddressRef2'            => 'string',
        'EveningPhone'           => 'string',
        'Email'                  => 'string',
        'JobTitle'               => 'string',
        'MobilePhone'            => 'string',
        'ModifiedOn'             => 'dateTime',
        'CustomerNumber'         => 'int',
        'Email2'                 => 'string',
        'TradeCustomer'          => 'boolean',
        'CreditAmount'           => 'decimal',
        'AccountBalance'         => 'decimal',
        'AccountBalanceCurr'     => 'decimal',
        'InvoiceAccount'         => 'boolean',
        'ShopperID'              => 'string',
        'AlternativeReference'   => 'string',
        'ShopCustomer'           => 'boolean',
        'ShipCompletePreference' => 'boolean',
        'VatReceiptRequired'     => 'boolean',
        'VatRefundRequired'      => 'boolean',
        'RentOptOut'             => 'boolean',
        'MailOptOut'             => 'boolean',
        'AllowSubstitutes'       => 'boolean',
        'EmailPromotionFlag'     => 'boolean',
        'EmailRentFlag'          => 'boolean',
        'FaxPromotionFlag'       => 'boolean',
        'FaxRentFlag'            => 'boolean',
        'PhonePromotionFlag'     => 'boolean',
        'PhoneRentFlag'          => 'boolean',
        'EmailOptOut'            => 'boolean',
        'LastMailingCode'        => 'string',
        'Modified'               => 'boolean',
        'UserDefined1'           => 'string',
        'UserDefined2'           => 'string',
        'UserDefined3'           => 'string',
        'UserDefined4'           => 'string',
        'UserDefined5'           => 'string',
        'UserDefined6'           => 'string',
        'UserDefined7'           => 'string',
        'UserDefined8'           => 'string',
        'UserDefined9'           => 'string',
        'UserDefined10'          => 'string',
        'UserDefined11'          => 'string',
        'UserDefined12'          => 'string',
        'UserDefined13'          => 'string',
        'UserDefined14'          => 'string',
        'UserDefined15'          => 'string',
        'UserDefined16'          => 'string',
        'WebPassword'            => 'string',
        'TextType'               => 'string',
        'DocumentCode'           => 'string',
        'TextBuffer'             => 'string'
    };

    my $envelopeElement;
    my @CustomerAdditionalAddress_Elements
        = qw(AddressNumber StatusCode TitleCode Salutation FirstName Surname Address1 Address2 Address3 Town County Country Postcode PostcodeStrip DayPhone Fax AddressRef1 AddressRef2 EveningPhone Email JobTitle MobilePhone ModifiedOn );
    my @CustomerAdditionalAddressAll = ();

    foreach (@CustomerAdditionalAddress_Elements) {
        $envelopeElement
            = SOAP::Data->type( $dataTypes->{$_} )
            ->name( $_ => $self->{_WSRequest}->{AdditionalAddresses}
                ->{CustomerAdditionalAddress}->{$_} );
        push( @CustomerAdditionalAddressAll, $envelopeElement );
    }

    my @CustomerUpdate_Elements
        = qw(CustomerNumber StatusCode TitleCode Salutation FirstName Surname Address1 Address2 Address3 Town County Country Postcode PostcodeStrip DayPhone Fax AddressRef1 AddressRef2 EveningPhone Email Email2 JobTitle MobilePhone TradeCustomer CreditAmount AccountBalance AccountBalanceCurr InvoiceAccount ShopperID AlternativeReference ShopCustomer ShipCompletePreference VatReceiptRequired VatRefundRequired RentOptOut MailOptOut AllowSubstitutes EmailPromotionFlag  EmailRentFlag FaxPromotionFlag FaxRentFlag PhonePromotionFlag PhoneRentFlag EmailOptOut LastMailingCode Modified ModifiedOn);
    my @CustomerUpdateAll = ();

    foreach (@CustomerUpdate_Elements) {
        $envelopeElement = SOAP::Data->type( $dataTypes->{$_} )
            ->name( $_ => $self->{_WSRequest}->{$_} );
        push( @CustomerUpdateAll, $envelopeElement );
    }

    my @CustomerUserDefined_Elements
        = qw(UserDefined1 UserDefined2 UserDefined3 UserDefined4 UserDefined5 UserDefined6 UserDefined7 UserDefined8 UserDefined9 UserDefined10 UserDefined11 UserDefined12  UserDefined13 UserDefined14 UserDefined15 UserDefined16);
    my @CustomerUserDefinedAll = ();

    foreach (@CustomerUserDefined_Elements) {
        $envelopeElement = SOAP::Data->type( $dataTypes->{$_} )
            ->name( $_ => $self->{_WSRequest}->{$_} );
        push( @CustomerUserDefinedAll, $envelopeElement );
    }

    my @WebUserDefined_Elements
        = qw(WebPassword UserDefined1 UserDefined2 UserDefined3 UserDefined4 UserDefined5);
    my @WebUserDefinedAll = ();

    foreach (@WebUserDefined_Elements) {
        $envelopeElement = SOAP::Data->type( $dataTypes->{$_} )
            ->name( $_ => $self->{_WSRequest}->{$_} );
        push( @WebUserDefinedAll, $envelopeElement );
    }

    my @CustomerText_Elements = qw(TextType DocumentCode TextBuffer);
    my @CustomerTextAll       = ();

    foreach (@CustomerText_Elements) {
        $envelopeElement = SOAP::Data->type( $dataTypes->{$_} )
            ->name( $_ => $self->{_WSRequest}->{$_} );
        push( @CustomerTextAll, $envelopeElement );
    }

    my @params;

#            my @params = (
#    SOAP::Data->name('CustomerUpdate' => \SOAP::Data->value(@CustomerUpdateAll
#        SOAP::Data->type('int')->name('CustomerNumber'          => $self->{_WSRequest}->{CustomerNumber}),
#        SOAP::Data->type('string')->name('StatusCode'           => $self->{_WSRequest}->{StatusCode}),
#        SOAP::Data->type('string')->name('TitleCode'            => $self->{_WSRequest}->{TitleCode}),
#        SOAP::Data->type('string')->name('Salutation'           => $self->{_WSRequest}->{Salutation}),
#        SOAP::Data->type('string')->name('FirstName'            => $self->{_WSRequest}->{FirstName}),
#        SOAP::Data->type('string')->name('Surname'          => $self->{_WSRequest}->{Surname}),
#        SOAP::Data->type('string')->name('Address1'             => $self->{_WSRequest}->{Address1}),
#        SOAP::Data->type('string')->name('Address2'             => $self->{_WSRequest}->{Address2}),
#       SOAP::Data->type('string')->name('Address3'             => $self->{_WSRequest}->{Address3}),
#        SOAP::Data->type('string')->name('Town'             => $self->{_WSRequest}->{Town}),
#        SOAP::Data->type('string')->name('County'           => $self->{_WSRequest}->{County}),
#        SOAP::Data->type('string')->name('Country'          => $self->{_WSRequest}->{Country}),
#        SOAP::Data->type('string')->name('Postcode'             => $self->{_WSRequest}->{Postcode}),
#        SOAP::Data->type('string')->name('PostcodeStrip'        => $self->{_WSRequest}->{PostcodeStrip}),
#        SOAP::Data->type('string')->name('DayPhone'             => $self->{_WSRequest}->{DayPhone}),
#        SOAP::Data->type('string')->name('Fax'              => $self->{_WSRequest}->{Fax}),
#        SOAP::Data->type('string')->name('Type'             => $self->{_WSRequest}->{Type}),
##        SOAP::Data->type('string')->name('AddressRef1'          => $self->{_WSRequest}->{AddressRef1}),
#        SOAP::Data->type('string')->name('AddressRef2'          => $self->{_WSRequest}->{AddressRef2}),
#        SOAP::Data->type('string')->name('EveningPhone'         => $self->{_WSRequest}->{EveningPhone}),
#        SOAP::Data->type('string')->name('Email'            => $self->{_WSRequest}->{Email}),
#        SOAP::Data->type('string')->name('Email2'           => $self->{_WSRequest}->{Email2}),
#        SOAP::Data->type('string')->name('JobTitle'             => $self->{_WSRequest}->{JobTitle}),
#        SOAP::Data->type('string')->name('MobilePhone'          => $self->{_WSRequest}->{MobilePhone}),
#        SOAP::Data->type('boolean')->name('TradeCustomer'       => $self->{_WSRequest}->{TradeCustomer}),
#        SOAP::Data->type('decimal')->name('CreditAmount'        => $self->{_WSRequest}->{CreditAmount}),
#        SOAP::Data->type('decimal')->name('AccountBalance'      => $self->{_WSRequest}->{AccountBalance}),
#        SOAP::Data->type('decimal')->name('AccountBalanceCurr'      => $self->{_WSRequest}->{AccountBalanceCurr}),
#        SOAP::Data->type('boolean')->name('InvoiceAccount'      => $self->{_WSRequest}->{InvoiceAccount}),
#        SOAP::Data->type('string')->name('ShopperID'            => $self->{_WSRequest}->{ShopperID}),
#        SOAP::Data->type('string')->name('AlternativeReference'     => $self->{_WSRequest}->{AlternativeReference}),
#        SOAP::Data->type('boolean')->name('ShopCustomer'        => $self->{_WSRequest}->{ShopCustomer}),
#        SOAP::Data->type('boolean')->name('ShipCompletePreference'  => $self->{_WSRequest}->{ShipCompletePreference}),
#        SOAP::Data->type('boolean')->name('VatReceiptRequired'      => $self->{_WSRequest}->{VatReceiptRequired}),
#        SOAP::Data->type('boolean')->name('VatRefundRequired'       => $self->{_WSRequest}->{VatRefundRequired}),
#       SOAP::Data->type('boolean')->name('RentOptOut'          => $self->{_WSRequest}->{RentOptOut}),
#        SOAP::Data->type('boolean')->name('MailOptOut'          => $self->{_WSRequest}->{MailOptOut}),
#        SOAP::Data->type('boolean')->name('AllowSubstitutes'        => $self->{_WSRequest}->{AllowSubstitutes}),
#       SOAP::Data->type('boolean')->name('EmailPromotionFlag'      => $self->{_WSRequest}->{EmailPromotionFlag}),
#        SOAP::Data->type('boolean')->name('EmailRentFlag'       => $self->{_WSRequest}->{EmailRentFlag}),
#        SOAP::Data->type('boolean')->name('FaxPromotionFlag'        => $self->{_WSRequest}->{FaxPromotionFlag}),
#        SOAP::Data->type('boolean')->name('FaxRentFlag'         => $self->{_WSRequest}->{FaxRentFlag}),
#        SOAP::Data->type('boolean')->name('PhonePromotionFlag'      => $self->{_WSRequest}->{PhonePromotionFlag}),
#        SOAP::Data->type('boolean')->name('PhoneRentFlag'       => $self->{_WSRequest}->{PhoneRentFlag}),
#        SOAP::Data->type('boolean')->name('EmailOptOut'         => $self->{_WSRequest}->{EmailOptOut}),
#        SOAP::Data->type('string')->name('LastMailingCode'      => $self->{_WSRequest}->{LastMailingCode}),
#        SOAP::Data->type('boolean')->name('Modified'            => $self->{_WSRequest}->{Modified}),
#        SOAP::Data->type('dateTime')->name('ModifiedOn'         => $self->{_WSRequest}->{ModifiedOn}),
#
#       SOAP::Data->name('CustomerUserDefined' => \SOAP::Data->value(@CustomerUserDefinedAll
#        SOAP::Data->type('string')->name('UserDefined1'  => $self->{_WSRequest}->{UserDefined1}),
#        SOAP::Data->type('string')->name('UserDefined2'  => $self->{_WSRequest}->{UserDefined2}),
#        SOAP::Data->type('string')->name('UserDefined3'  => $self->{_WSRequest}->{UserDefined3}),
#        SOAP::Data->type('string')->name('UserDefined4'  => $self->{_WSRequest}->{UserDefined4}),
#        SOAP::Data->type('string')->name('UserDefined5'  => $self->{_WSRequest}->{UserDefined5}),
#        SOAP::Data->type('string')->name('UserDefined6'  => $self->{_WSRequest}->{UserDefined6}),
#        SOAP::Data->type('string')->name('UserDefined7'  => $self->{_WSRequest}->{UserDefined7}),
#        SOAP::Data->type('string')->name('UserDefined8'  => $self->{_WSRequest}->{UserDefined8}),
#        SOAP::Data->type('string')->name('UserDefined9'  => $self->{_WSRequest}->{UserDefined9}),
#        SOAP::Data->type('string')->name('UserDefined10' => $self->{_WSRequest}->{UserDefined10}),
#        SOAP::Data->type('string')->name('UserDefined11' => $self->{_WSRequest}->{UserDefined11}),
#        SOAP::Data->type('string')->name('UserDefined12' => $self->{_WSRequest}->{UserDefined12}),
#        SOAP::Data->type('string')->name('UserDefined13' => $self->{_WSRequest}->{UserDefined13}),
#        SOAP::Data->type('string')->name('UserDefined14' => $self->{_WSRequest}->{UserDefined14}),
#        SOAP::Data->type('string')->name('UserDefined15' => $self->{_WSRequest}->{UserDefined15}),
#        SOAP::Data->type('string')->name('UserDefined16' => $self->{_WSRequest}->{UserDefined16}),
#        )),
#
#         SOAP::Data->name('WebUserDefined' => \SOAP::Data->value(@WebUserDefinedAll
#       SOAP::Data->type('string')->name('WebPassword'  => $self->{_WSRequest}->{WebPassword}),
#       SOAP::Data->type('string')->name('UserDefined1' => $self->{_WSRequest}->{UserDefined1}),
#       SOAP::Data->type('string')->name('UserDefined2' => $self->{_WSRequest}->{UserDefined2}),
#       SOAP::Data->type('string')->name('UserDefined3' => $self->{_WSRequest}->{UserDefined3}),
#       SOAP::Data->type('string')->name('UserDefined4' => $self->{_WSRequest}->{UserDefined4}),
#       SOAP::Data->type('string')->name('UserDefined5' => $self->{_WSRequest}->{UserDefined5}),
#        )),
#
#       SOAP::Data->name('AdditionalAddresses' => \SOAP::Data->value(
#          SOAP::Data->name('CustomerAdditionalAddress' => \SOAP::Data->value(@CustomerAdditionalAddressAll
#            SOAP::Data->type('int')->name('AddressNumber'   => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{AddressNumber}),
#            SOAP::Data->type('string')->name('StatusCode'   => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{StatusCode}),
#            SOAP::Data->type('string')->name('TitleCode'    => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{TitleCode}),
#            SOAP::Data->type('string')->name('Salutation'   => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{Salutation}),
#            SOAP::Data->type('string')->name('FirstName'    => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{FirstName}),
#            SOAP::Data->type('string')->name('Surname'      => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{Surname}),
#            SOAP::Data->type('string')->name('Address1'     => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{Address1}),
#            SOAP::Data->type('string')->name('Address2'     => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{Address2}),
#            SOAP::Data->type('string')->name('Address3'     => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{Address3}),
#            SOAP::Data->type('string')->name('Town'         => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{Town}),
#            SOAP::Data->type('string')->name('County'       => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{County}),
#            SOAP::Data->type('string')->name('Country'      => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{Country}),
#            SOAP::Data->type('string')->name('Postcode'     => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{Postcode}),
#            SOAP::Data->type('string')->name('PostcodeStrip'    => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{PostcodeStrip}),
#            SOAP::Data->type('string')->name('DayPhone'     => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{DayPhone}),
#            SOAP::Data->type('string')->name('Fax'      => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{Fax}),
#            SOAP::Data->type('string')->name('AddressRef1'  => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{AddressRef1}),
#            SOAP::Data->type('string')->name('AddressRef2'  => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{AddressRef2}),
#            SOAP::Data->type('string')->name('EveningPhone'     => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{EveningPhone}),
#            SOAP::Data->type('string')->name('Email'        => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{Email}),
#            SOAP::Data->type('string')->name('JobTitle'     => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{JobTitle}),
#            SOAP::Data->type('string')->name('MobilePhone'  => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{MobilePhone}),
#            SOAP::Data->type('dateTime')->name('ModifiedOn'     => $self->{_WSRequest}->{AdditionalAddresses}->{CustomerAdditionalAddress}->{ModifiedOn}),
#        )),
#        )),
#
#        SOAP::Data->name('CustomerTexts' => \SOAP::Data->value(
#        SOAP::Data->name('CustomerText' => \SOAP::Data->value(@CustomerTextAll
#            SOAP::Data->type('string')->name('TextType'     => $self->{_WSRequest}->{TextType}),
#            SOAP::Data->type('string')->name('DocumentCode' => $self->{_WSRequest}->{DocumentCode}),
#            SOAP::Data->type('string')->name('TextBuffer'   => $self->{_WSRequest}->{TextBuffer}),
#        )),
#        )),
#
#    )),     );

    my $thereIsAddress = 0;

    my @CheckAddress_Fields
        = qw(FirstName Surname Address1 Address2 Address3 Town Postcode);

    foreach (@CheckAddress_Fields) {
        if ( $self->{_WSRequest}->{AdditionalAddresses}
            ->{CustomerAdditionalAddress}->{$_} ne "" )
        {
            $thereIsAddress = 1;
        }
    }

    if ($thereIsAddress) {
        GetLog->debug("THERE IS ADDRESS PRESENT");
        @params = (
            SOAP::Data->name(
                'CustomerUpdate' => \SOAP::Data->value(
                    @CustomerUpdateAll,
                    SOAP::Data->name(
                        'CustomerUserDefined' =>
                            \SOAP::Data->value(@CustomerUserDefinedAll)
                    ),
                    SOAP::Data->name(
                        'WebUserDefined' =>
                            \SOAP::Data->value(@WebUserDefinedAll)
                    ),
                    SOAP::Data->name(
                        'AdditionalAddresses' => \SOAP::Data->value(
                            SOAP::Data->name(
                                'CustomerAdditionalAddress' =>
                                    \SOAP::Data->value(
                                    @CustomerAdditionalAddressAll)
                            ),
                        )
                    ),
                    SOAP::Data->name(
                        'CustomerTexts' => \SOAP::Data->value(
                            SOAP::Data->name(
                                'CustomerText' =>
                                    \SOAP::Data->value(@CustomerTextAll)
                            ),
                        )
                    ),
                )
            ),
        );

    }
    else {
        GetLog->debug("!!!!!!!!!!!THERE IS NO ADDRESS!!!!!!!!!!!");
        @params = (
            SOAP::Data->name(
                'CustomerUpdate' => \SOAP::Data->value(
                    @CustomerUpdateAll,
                    SOAP::Data->name(
                        'CustomerUserDefined' =>
                            \SOAP::Data->value(@CustomerUserDefinedAll)
                    ),
                    SOAP::Data->name(
                        'WebUserDefined' =>
                            \SOAP::Data->value(@WebUserDefinedAll)
                    ),
                    SOAP::Data->name(
                        'CustomerTexts' => \SOAP::Data->value(
                            SOAP::Data->name(
                                'CustomerText' =>
                                    \SOAP::Data->value(@CustomerTextAll)
                            ),
                        )
                    ),
                )
            ),
        );

    }

    #           $self->LogDebug("Web service request: \n" . Dumper(\@params));
    return @params;
}

sub getAA {
    my ( $hashref, $valueToExtract ) = @_;
    return $hashref->{ 'AA_' . $valueToExtract };
}

1;
